from dataclasses import dataclass

'''
@dataclasses.dataclass() 是Python 3.7及更高版本中引入的一个装饰器，用于简化数据封装类（即主要用于存储数据的类）的编写。
自动方法生成：dataclass 装饰器会根据类中定义的字段自动创建 __init__、__repr__ 和 __eq__ 方法。这样，你就不需要手动编写这些通常都很相似的方法。
类型注解：dataclass 使用Python的类型注解来识别类中的字段。
可定制性：你可以通过传递参数给 @dataclass 装饰器来定制其行为，如设置 frozen=True 使实例不可变。
'''
@dataclass
class Address:
    '''
    地址类，存储省市区
    '''
    id :int
    province :str
    city :str
    disctrict :str

'''
可以使用@property装饰器来创建只读属性，@property装饰器会将方法转换为相同名称的只读属性,可以与所定义的属性配合使用，这样可以防止属性被修改。
'''
class PropertyTest:
    '''
    @property测试类
    '''
    def __init__(self) -> None:
        self._name = None

    @property
    def method_with_property(self): ##含有@property
      return 15
    def method_without_property(self): ##不含@property
      return 15
    
    @property
    def name(self):
        return self._name
    
    @name.setter
    def name(self, value):
        self._name = value